external direct product theorem